package com.smedi.ismedi.authoritymanagement.core.application.query.vo;

import com.smedi.ismedi.authoritymanagement.core.domain.aggregatemodel.InternalAssignmentInfo;
import com.smedi.ismedi.authoritymanagement.core.domain.aggregatemodel.NodeInfo;
import com.smedi.ismedi.authoritymanagement.core.domain.aggregatemodel.ProjectAssignmentInfo;
import com.smedi.ismedi.authoritymanagement.core.domain.aggregatemodel.RoleBasic;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Author: xulinjun
 * @Date: 2021-7-3 10:13
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class CurrentUserInfoVo implements Serializable {
    private Long personId;

    private String userKey;

    private String lastName;

    private String employeeNum;

    private String userName;

    private String mobile;

    private String genderMeaning;

    private boolean internal;

    private boolean admin;

    private boolean virtual;

    private String imageUUID;

    private String token;

    private String clientId;

    private List<InternalAssignmentInfo> internalAssignments = new ArrayList<>();

    private List<ProjectAssignmentInfo> projectAssignments = new ArrayList<>();

    private LocalDateTime loginDateTime;

    private Map<String, List<Long>> dataScope = new HashMap<>();

    private boolean firstLogin;

    private List<RoleBasic> roles;

    private NodeInfo nodeInfo;

    private String personLevel;
}
